Method and system for generating latency aware workloads using resource devices in a resource device pool

ABSTRACT

A method for managing data includes obtaining, by a management module, a workload generation request, wherein the workload generation request specifies a plurality of resource devices, identifying available resource devices in a resource device pool based on the plurality of resource devices, performing a latency analysis on the available resource devices to obtain a plurality of resource device combinations and a total latency cost of each resource device combination, and selecting a resource device combination of the plurality of resource device combinations based on the total latency cost of each resource device combination, wherein the resource device combination comprises a second plurality of resource devices and wherein each of the second plurality of resource devices is one of the plurality of resource devices.

BACKGROUND

Computing devices may include any number of internal components such asprocessors, memory, and persistent storage. Each of the internalcomponents of a computing device may be used to generate data. Theprocess of generating, storing, and transferring data may utilizeresources of the computing devices such as processing and storage. Theutilization of the aforementioned resources to generate, store, andtransfer data may impact the overall performance of the resources.

SUMMARY

In general, in one aspect, the invention relates to a method formanaging data. The method includes obtaining, by a management module, aworkload generation request, wherein the workload generation requestspecifies a plurality of resource devices, identifying availableresource devices in a resource device pool based on the plurality ofresource devices, performing a latency analysis on the availableresource devices to obtain a plurality of resource device combinationsand a total latency cost of each resource device combination, andselecting a resource device combination of the plurality of resourcedevice combinations based on the total latency cost of each resourcedevice combination, wherein the resource device combination comprises asecond plurality of resource devices and wherein each of the secondplurality of resource devices is one of the plurality of resourcedevices.

In general, in one aspect, the invention relates to a non-transitorycomputer readable medium that includes computer readable program code,which when executed by a computer processor enables the computerprocessor to perform a method for managing data. The method includesobtaining, by a management module, a workload generation request,wherein the workload generation request specifies a plurality ofresource devices, identifying available resource devices in a resourcedevice pool based on the plurality of resource devices, performing alatency analysis on the available resource devices to obtain a pluralityof resource device combinations and a total latency cost of eachresource device combination, and selecting a resource device combinationof the plurality of resource device combinations based on the totallatency cost of each resource device combination, wherein the resourcedevice combination comprises a second plurality of resource devices andwherein each of the second plurality of resource devices is one of theplurality of resource devices.

In general, in one aspect, the invention relates to a system thatincludes a processor and memory that includes instructions, which whenexecuted by the processor perform a method for managing data. The methodincludes obtaining, by a management module, a workload generationrequest, wherein the workload generation request specifies a pluralityof resource devices, identifying available resource devices in aresource device pool based on the plurality of resource devices,performing a latency analysis on the available resource devices toobtain a plurality of resource device combinations and a total latencycost of each resource device combination, and selecting a resourcedevice combination of the plurality of resource device combinationsbased on the total latency cost of each resource device combination,wherein the resource device combination comprises a second plurality ofresource devices and wherein each of the second plurality of resourcedevices is one of the plurality of resource devices.

BRIEF DESCRIPTION OF DRAWINGS

Certain embodiments of the invention will be described with reference tothe accompanying drawings. However, the accompanying drawings illustrateonly certain aspects or implementations of the invention by way ofexample and are not meant to limit the scope of the claims.

FIG. 1A shows a diagram of a system in accordance with one or moreembodiments of the invention.

FIG. 1B shows a diagram of an infrastructure persona in accordance withone or more embodiments of the invention.

FIG. 1C shows a diagram of a resource device pool in accordance with oneor more embodiments of the invention.

FIG. 1D shows a diagram of a management module in accordance with one ormore embodiments of the invention.

FIG. 2 shows a diagram of a resource allocation master list inaccordance with one or more embodiments of the invention.

FIG. 3A shows a flowchart for generating a workload for aninfrastructure persona in accordance with one or more embodiments of theinvention.

FIG. 3B shows a flowchart for replacing a failed resource device inaccordance with one or more embodiments of the invention.

FIG. 3C shows a flowchart for servicing redeployment requests inaccordance with one or more embodiments of the invention.

FIG. 3D shows a flowchart for managing performance of resource devicesin accordance with one or more embodiments of the invention.

FIG. 3E shows a flowchart for generating a workload that is securitycompliant in accordance with one or more embodiments of the invention.

FIG. 3F shows a flowchart for generating a workload that is datacompliant in accordance with one or more embodiments of the invention.

FIGS. 4.1A-4.1B show an example in accordance with one or moreembodiments of the invention.

FIGS. 4.2A-4.2B show a second example in accordance with one or moreembodiments of the invention.

FIGS. 4.3A-4.3B show a third example in accordance with one or moreembodiments of the invention.

FIGS. 4.4A-4.4B show a fourth example in accordance with one or moreembodiments of the invention.

FIG. 4.5 shows a fifth example in accordance with one or moreembodiments of the invention.

FIGS. 4.6A-4.6B show an example in accordance with one or moreembodiments of the invention.

FIG. 5 shows a diagram of a computing device in accordance with one ormore embodiments of the invention.

DETAILED DESCRIPTION

Specific embodiments will now be described with reference to theaccompanying figures. In the following description, numerous details areset forth as examples of the invention. It will be understood by thoseskilled in the art that one or more embodiments of the present inventionmay be practiced without these specific details and that numerousvariations or modifications may be possible without departing from thescope of the invention. Certain details known to those of ordinary skillin the art are omitted to avoid obscuring the description.

In the following description of the figures, any component describedwith regard to a figure, in various embodiments of the invention, may beequivalent to one or more like-named components described with regard toany other figure. For brevity, descriptions of these components will notbe repeated with regard to each figure. Thus, each and every embodimentof the components of each figure is incorporated by reference andassumed to be optionally present within every other figure having one ormore like-named components. Additionally, in accordance with variousembodiments of the invention, any description of the components of afigure is to be interpreted as an optional embodiment, which may beimplemented in addition to, in conjunction with, or in place of theembodiments described with regard to a corresponding like-namedcomponent in any other figure.

Throughout this application, elements of figures may be labeled as A toN, A to P, A to M, or A to L. As used herein, the aforementionedlabeling means that the element may include any number of items and doesnot require that the element include the same number of elements as anyother item labeled as A to N, A to P, A to M, or A to L. For example, adata structure may include a first element labeled as A and a secondelement labeled as N. This labeling convention means that the datastructure may include any number of the elements. A second datastructure, also labeled as A to N, may also include any number ofelements. The number of elements of the first data structure and thenumber of elements of the second data structure may be the same ordifferent.

In general, embodiments of the invention may relate to a method andsystem for utilizing resource devices. Embodiments of the invention mayinclude generating a workload associated with an infrastructure persona.The workload may utilize one or more resource devices. The generation ofthe workload may include identifying, using a resource allocation masterlist, available resource devices that may be allocated to the workload.The generation of the workload may further include specifying, in theresource allocation master list, the allocation of thepreviously-available resource devices to the workload.

Embodiments of the invention may include a method for performing latencymanagement. Embodiments of the invention may further include monitoringresource devices associated for each switch fabric and identifying thelatency cost between resource devices connected via one or more switchfabrics. The latency cost between resource devices may be determined andprovided to an administrative system managing the workload generation.The administrative system may select the combination of resource deviceswith the lowest latency cost. Alternatively, the selection may beperformed automatically based on the determined latency costs.

Embodiments of the invention may include a method for rebuilding aworkload after a notification is obtained that one or more resourcedevices of the workload has failed. Embodiments of the invention mayinclude updating a resource allocation master list to specify a failedstatus of the failed resource devices and reassigning reserved resourcedevices (e.g., such resource devices that are already allocated to theinfrastructure persona of the workload and pre-configured to a similarconfiguration of the failed resource devices).

Embodiments of the invention may include performing a method forperforming redeployment of workloads using available resource devices.The method may include identifying any resource devices needed for thenew workload, identifying the resource devices available in the system,initiating any configuration of processing or networking devices, and,if needed, initiating a migration of data from old storage devices tothe reallocated storage devices.

Embodiments of the invention may include a method for monitoringperformance metrics of resource devices in a workload. The method mayinclude obtaining performance metrics and determining whether theperformance metrics of the resource devices indicate the workload meetsstandard performance. Embodiments of the invention may further includeperforming a remediation when the workload does not meet the standardperformance. Snapshots may be obtained about current performance.

In one or more embodiments of the invention, the generated workload maybe a security compliant workload. A security compliant workload may meetthe criteria set by one or more security rules (e.g., encryptionstandards, specifying a source of resource device manufacturer, etc.).Embodiments of the invention may include identifying, of the availableresource devices, those that meet the specified security rules and,after allocating resource devices to the security-compliant workload, avirtual certificate that specifies the security-compliant workload.

In one or more embodiments of the invention, the generated workload maybe a data compliant workload. A security compliant workload may meet thecriteria set by one or more data compliance rules (e g, limits to thelocation of physical storage devices, privacy regulation, etc.).Embodiments of the invention may include identifying, of the availableresource devices, those that meet the specified data compliance rulesand, after allocating resource devices to the data compliant workload, aledger entry that specifies the workload and the data compliance rulesthat the workload is intended to follow. The ledger entry may be updatedas new data compliance rules are introduced and the workload is updatedto meet the new data compliance rules.

FIG. 1A shows an example system in accordance with one or moreembodiments of the invention. The system includes an administrativesystem (100) a chassis system (110), and a data compliance service(130). The components in the system may be operably connected via anycombination of wired and/or wireless connections. The system may includeadditional, fewer, and/or different components without departing fromthe invention. Each component in the system is operably connected viaany combination of wired and/or wireless connections.

In one or more embodiments of the invention, the administrative system(100) utilizes the resource devices (e.g., 114A, 114N) of the chassissystem (110) to implement workloads. The administrative system may sendworkload generation requests to a management module (112) of a chassis(110A, 110N) that specifies generation of a workload.

In one or more embodiments of the invention, a workload is an operationperformed by one or more resource devices. Examples of workloadsinclude, but are not limited to, executing a virtual cluster, amulti-node hyper-converged infrastructure, a database application, and acomputing application. The type of workload implemented may impact thenumber and/or types of resource devices utilized by the workload. Forexample, a virtual cluster may utilize more resource devices than adatabase application.

In one or more embodiments of the invention, each workload is associatedwith an infrastructure persona. In one or more embodiments of theinvention, an infrastructure persona is an entity that is allocatedresource devices. The infrastructure persona may utilize any or all ofthe allocated resource devices to implement a workload. For additionaldetails regarding an infrastructure persona, see, e.g., FIG. 1B.

In one or more embodiments of the invention, the administrative system(100) is implemented as a computing device (see e.g., FIG. 5). Thecomputing device may be, for example, a laptop computer, a desktopcomputer, a server, a distributed computing system, or a cloud resource(e.g., a third-party storage system accessible via a wired or wirelessconnection). The computing device may include one or more processors,memory (e.g., random access memory), and persistent storage (e.g., diskdrives, solid state drives, etc.). The computing device may includeinstructions, stored on the persistent storage, that when executed bythe processor(s) of the computing device cause the computing device toperform the functionality of the administrative system (100) describedthroughout this application.

In one or more embodiments of the invention, the administrative system(100) is implemented as a logical device. The logical device may utilizethe computing resources of any number of computing devices and therebyprovide the functionality of the administrative system (100) describedthroughout this application.

The chassis system (110) may include one or more chassis (110A, 110N).In one or more embodiments of the invention, a chassis is a housingmechanism that houses a resource device pool (114). A resource devicepool (e.g., 114) may include one or more resource devices (114A, 114N).Each chassis (110A, 110N) further includes a management module (e.g.,112) that enables the generation, modification, and/or implementation ofthe workloads. Each resource device (e.g., 114A, 114N) in the chassissystem (110) may be allocated to an infrastructure persona to be used toimplement a workload. For additional details regarding a resource device(e.g., 114A, 114N), see, e.g., FIG. 1C.

In one or more embodiments of the invention, the resource devices in theresource device pools (e.g., 114) of the chassis system (110)collectively make up a composable infrastructure. In one or moreembodiments of the invention, a composable infrastructure is acollection of resource devices that may be distributed amonginfrastructure personas (discussed in FIG. 1B) to be utilized toimplement workloads. The resource devices may be shared between theinfrastructure personas to implement workloads. The resource devices(e.g., 114A, 114N) may be enabled to implement a workload for oneinfrastructure persona with one set of resource devices at one point intime and a different workload for a different infrastructure personawith a different set of resource devices at a second point in time. Inthis manner, each resource device in the composable infrastructure isnot limited to operate with any one set of resource devices, nor is itlimited to implement one workload. The allocation of resource devices tothe workloads and/or infrastructure personas in the composableinfrastructure may be managed by the management module (112). In one ormore embodiments of the invention, the resource devices in thecomposable infrastructure may be external to the chassis system (100).In such embodiments, the resource devices may be connected to the switchfabrics (120) via any other connections independent from the structureof a chassis (e.g., 110A, 110N).

In one or more embodiments of the invention, the management module (112)manages the usage of the resource devices in the resource device pool(114). Specifically, the management module may include functionality forgenerating, deploying, and/or modifying workloads utilized by aninfrastructure persona in accordance with any or all of the methodsillustrated in FIGS. 3A-3F. The management module (112) may be internalor external to a chassis (110A, 110N) without departing from theinvention. In such embodiments where the management module is internalto each chassis (110A, 110N), the information of each management module(e.g., 112) may be propagated to any or all management modules in thechassis system (110). In this manner, each management module (e.g., 112)in the chassis system (110) is consistent, and any management module iscapable of performing the functionality of the management module (112)described throughout this application and/or all or a portion of themethods illustrated in FIGS. 3A-3F.

In one or more embodiments of the invention, the management module (112)is implemented as computing code stored on a persistent storage thatwhen executed by a processor of a computing device performs thefunctionality of the management module (112) discussed throughout thisapplication and/or all or a portion of the methods illustrated in FIGS.3A-3F. The processor may be a hardware processor including circuitrysuch as, for example, a central processing unit (CPU) or amicrocontroller. The processor may be other types of hardware devicesfor processing digital information without departing from the invention.For additional details regarding the management module, see, e.g., FIG.1D.

The chassis system may further include any number of switch fabrics(120). The switch fabrics (122, 124) may each be devices that enablecommunication between resource devices in the chassis system (110). Eachswitch fabric (e.g., 122, 124) may include any number of switches thatconnect two or more resource devices (e.g., 114A, 114N) within thechassis system (110). Each of the resource devices connected to a switchfabric (122, 124) may be associated with the same or a different chassis(e.g., 110A, 110N) without departing from the invention.

In one or more embodiments of the invention, a switch fabric (122, 124)is implemented as a series of crossbar switches. A crossbar switch maybe a collection of network switches with multiple inputs and multipleoutputs. The collection of network switches may be interconnected viaany combination of wired and/or wireless connections arranged in, forexample, in a matrix configuration, where each input is connected to allor a portion of the outputs in the collection of network switches. Theswitch fabric (122, 124) may be implemented as any other known or laterdiscovered network component without departing from the invention.

In one or more embodiments of the invention, the communication betweenresource devices in a switch fabric (122, 124) may produce negligiblelatency. In other words, one may estimate near-zero latency betweenresource devices communicating within one switch fabric.

In contrast, communication between two or more resource devices each ina different switch fabric may have a measurable amount of latency. Theamount of latency may increase with the number of switch fabrics neededfor the two resource devices to communicate.

For example, consider a series of switch fabrics identified as switchfabrics A, B, C, and D. The direct connections between switch fabricsmay be as follows: switch fabric A is directly connected to switchfabric B, which is also directly connected to switch fabric C, which isalso directly connected to switch fabric D.

Continuing the above example, a resource device pool may be directlyconnected to each switch fabric. A first resource device directlyconnected to switch fabric A may communicate with a second resourcedevice connected to switch fabric B and a third resource deviceconnected to switch fabric D. The latency in communication between thefirst and second resource device may be lower than the latency incommunication between the first and the third resource devices becausethere are less switch fabrics needed to communicate between the firstand second resource device than between the first and third resourcedevice.

In one or more embodiments of the invention, the latency betweenresource devices may be measured using, for example, units of latency.In one or more embodiments of the invention, a unit of latency maycorrespond to the number of switch fabrics required for the resourcedevices to communicate.

For example, the latency between the first and second resource devicesdiscussed above may be associated with one unit of latency, becauseswitch fabrics A and B are directly connected, and the first resourcedevice needs to utilize switch fabric B to communicate with the secondresource device. As a second example, the first and third resourcedevices may be associated with two units of latency due to the firstresource device needing to use switch fabrics B and C to communicatewith the third resource device.

In one or more embodiments of the invention, the data compliance service(130) manages data compliant workloads. Specifically, the datacompliance service (130) initiates generation of workloads that complywith one or more data compliant rules. The data compliance service (130)may generate data compliance certificates for data compliant workloadsand store immutable ledger entries that specify the data compliantworkloads, the data compliance certificate, and/or the resource devicesused to implement the workload.

In one or more embodiments of the invention, the data compliance service(130) is implemented as a computing device (see, e.g., FIG. 5). Thecomputing device may be, for example, a mobile phone, tablet computer,laptop computer, desktop computer, server, or cloud resource. Thecomputing device may include one or more processors, memory (e.g.,random access memory), and persistent storage (e.g., disk drives, solidstate drives, etc.). The persistent storage may store computerinstructions, e.g., computer code, that when executed by theprocessor(s) of the computing device cause the computing device toperform the functions of the data compliance service (130) describedthroughout this application.

In one or more embodiments of the invention, the data compliance service(130) is implemented as a logical device. The logical device may utilizecomputing resources of any number of physical computing devices toprovide the functionality of the ledger service (134) describedthroughout this application.

In one or more embodiments of the invention, the data compliance service(130) is implemented as a distributed ledger (e.g., a block chain). Thelogical device may utilize computing resources of any number of physicalcomputing devices to provide the functionality of the data complianceservice (130) described throughout this application.

FIG. 1B shows a diagram of an infrastructure persona. The infrastructurepersona (140) is a logical entity that is allocated one or more resourcedevices (e.g., 142). The infrastructure persona (140) may implement aworkload (150) using one or more allocated resource devices. Theallocated resource device(s) used to implement the workload (alsoreferred to as a workload resource device) may be obtained from one ormore chassis (162, 164). In other words, each workload resource device(e.g., 152) may be a chassis resource device (e.g., 162A, 164A).

In one or more embodiments of the invention, the infrastructure persona(140) is generated in accordance with an administrative system. Theadministrative system may determine the types of resource devices (e.g.,142) to be allocated to the infrastructure persona (140) based on aworkload (150) to be implemented using the infrastructure persona. Whileall workload resource devices (e.g., 152) are associated with anallocated resource device (e.g., 142) of the infrastructure persona(140), not all allocated resource devices (e.g., 142) are associatedwith the workload (150). In other words, one or more allocated resourcedevices (e.g., 142) may be on standby and not utilized by theinfrastructure persona (140) to implement the workload (150).

In one or more embodiments of the invention, the workload resourcedevices (e.g., 152) are obtained from one or more chassis (162, 164).Said another way, the workload resource devices (e.g., 152) of theworkload (150) may not all be associated with the same chassis (e.g.,162).

In one or more embodiments of the invention, the workload resourcedevices (152) executing a workload (150) may change throughout thelifecycle of the workload (150). In other words, workload resourcedevices of a workload (150) may be added, removed, and/or modified(e.g., to vary the chassis resource devices associated with the resourcedevices).

FIG. 1C shows a diagram of a resource device pool (170). The resourcedevice pool (170) may be an embodiment of the resource device pool (114,FIG. 1A) discussed above. The resource device pool (170) may include anycombination of a processing device pool (172), a storage device pool(174) and a network device pool (176). The resource device pool (170)may include other types of resource device pools (e.g., different from aprocessing device pool, a network device pool, or a storage device pool)without departing from the invention.

In one or more embodiments of the invention, the processing device pool(172) includes one or more processing devices (172A, 172P). Eachprocessing device (172A, 172P) may be a device that is capable ofperforming computing operations. Each processing device (172A, 172P) mayinclude one or more processing cores, cache, memory, and/or othercomponents that enable the processing device (172A, 172P) to perform theaforementioned computing operations. Examples of processing devicesinclude, but are not limited to, single-core CPUs, multi-core CPUs,graphics processing units (GPUs), and field programmable gate arrays(FPGAs).

In one or more embodiments of the invention, the storage device pool(174) includes one or more storage devices (174A, 174M). Each storagedevice (174A, 174M) may be (or include) non-volatile storage. In otherwords, the data stored in the storage devices (174A, 174M) does not getlost or removed when the storage devices (174A, 174M) lose power. Eachof the storage devices (174A, 174M) may be (or include), for example,one or more solid state drives, hard disk drives, tape drives, and/ornon-volatile memory (e.g., persistent memory). The storage devices mayinclude other types of non-volatile or non-transitory storage mediumswithout departing from the invention.

In one or more embodiments of the invention, the network device pool(176) includes one or more network device (176A, 176L). Each networkdevice may be a device that enables communication between one or moreresource device in one or more resource device pools (e.g., 170). Thenetwork device may include for example, a network interface controller(NIC), a network switch, etc. The network device(s) in a workload mayallow each resource device to communicate with other resource devices ina workload for the purpose of, for example, obtaining data from theresource devices.

FIG. 1D shows a diagram of a management module. The management module(180) of FIG. 1D may be an embodiment of a management module (e.g., 112,FIG. 1A) discussed above. The management module (180) may include aninfrastructure persona generation manager (182), a latency manager(184), a redeployment orchestrator (186), a performance manager (188), asecurity compliance manager (189), and storage (190). The managementmodule (180) may include additional, fewer, and/or different componentswithout departing from the invention. The storage may store a resourceallocation master list (192), a security compliance database (194), anda performance database (196). The storage (190) may store additional,fewer, and/or different data structures without departing from theinvention.

In one or more embodiments of the invention, the infrastructure personageneration manager (182) generates infrastructure personas and/orworkloads associated with the infrastructure personas. Theinfrastructure persona generation manager (182) may generate aninfrastructure persona in accordance with a request obtained from anadministrative system that specifies the infrastructure persona to begenerated. The infrastructure persona generation manager may generatethe infrastructure persona by generating an infrastructure personaidentifier (ID), allocating one or more resource devices to theinfrastructure persona, performing any configuration on the resourcedevices (e.g., operating system installation, network connectivitysettings, etc.) on the resource devices that enable the infrastructurepersona to implement a workload, and updating the resource allocationmaster list (192) based on the allocation.

Further, the infrastructure persona generation manager (182) may serviceworkload generation requests obtained from an administrative system thatspecifies generating a workload associated with an infrastructurepersona. The infrastructure persona generation manager (182) may servicethe workload generation requests in accordance with FIGS. 3A, 3E, and/or3F.

In one or more embodiments of the invention, the infrastructure personageneration manager (182) further includes functionality to update and/orotherwise modify an existing workload in accordance with the methodillustrated in FIG. 3B.

In one or more embodiments of the invention, the latency manager (184)monitors the latency cost of communication between the resource devicesin the chassis system. The latency manager (184) may store a table thatspecifies each switch fabric in the chassis system, and the resourcedevices stored in each switch fabric. The latency manager (184) may usethe table to identify a latency cost between two or more resourcedevices in response to requests by the administrative system to identifya latency cost between the resource devices. The latency cost may beused to determine a resource device combination to be used whengenerating a workload. The latency manager (184) may perform theaforementioned functionality in accordance with all or a portion of themethod illustrated in FIG. 3A.

In one or more embodiments of the invention, the redeploymentorchestrator (186) initiates redeployment of one or more existingworkloads. The redeployment may be in response to, for example, aredeployment request issued by an administrative system to redeploy theworkload and/or in response to a notification by the performance manager(188) that specifies a low performance by the workload. The redeploymentmay be initiated in accordance with the method illustrated in FIG. 3C.

In one or more embodiments of the invention, the performance manager(188) manages the performance of resource devices utilized by workloads.The performance manager (188) may monitor the resource devices to obtainperformance metrics, compare the performance metrics to performancecriteria, and, if the performance metrics do not satisfy the performancecriteria, the performance manager (188) may initiate a remediation basedon such determination. The performance metrics and the performancecriteria may be stored in a performance database (196). The performancemanager may manage the performance of the resource devices in accordancewith the method illustrated in FIG. 3D.

In one or more embodiments of the invention, the security compliancemanager (189) manages the security compliance of workloads. The securitycompliance manager (189) may manage the security compliance bymaintaining security compliance database (194) that stores virtualcertificates for workloads that are security compliant of one or moresecurity compliance rules (discussed below in FIG. 3E). The securitycompliance manager may initiate the generation of security compliantworkloads in accordance with FIG. 3E.

In one or more embodiments of the invention, the storage (190) stores aresource allocation master list (192), a security compliance database(194), and a performance database (196). The storage (190) may storeadditional, fewer, and/or different data structures without departingfrom the invention. The storage (190) may be volatile or non-volatilewithout departing from the invention.

In one or more embodiments of the invention, the resource allocationmaster list (192) is a data structure that specifies information abouteach resource device in the composable infrastructure. The informationmay include, for example, whether the resource device is utilized by aninfrastructure persona to implement a workload, a status of the resourcedevice (discussed below in FIG. 2), and/or other information about theresource devices that may be used by the infrastructure personageneration manager (182) when generating a workload and/or whenallocating resource devices to an infrastructure persona. For additionaldetails regarding the resource allocation master list (192), see, e.g.,FIG. 2.

In one or more embodiments of the invention, the security compliancedatabase (194) stores entries that each specify a workload and/or anyvirtual certification applied to the workload. The entries in thesecurity compliance database (194) may be accessed by a user operatingthe administrative system to identify any workloads that are securitycompliant of one or more security compliant rules. The securitycompliant rules may be specified in the corresponding entries. Further,the entries in the security compliance database (194) may specify anencryption algorithm that each processing device in the composableinfrastructure is equipped to perform. This information may be used todetermine whether the processing device(s) are compliant with securitycompliant rules (discussed in FIG. 3E).

In one or more embodiments of the invention, the performance database(196) stores snapshots of performance metrics (discussed in FIG. 3D) ofworkloads in the composable infrastructure. In one or more embodimentsof the invention, a performance metric is a measurable aspect of aresource device that specify how the resource device is being utilizedat a given point in time. Examples of performance metrics include, butare not limited to: CPU utilization (e.g., as a percentage of total CPUcapability), memory utilization, storage usage (e.g., as a percentage ofstorage capacity), network throughput, data transfer latency, and/ornumber of processing commands on a queue. Each of the performancemetrics is obtained by measuring the usage of each of the resourcedevices in the workload.

FIG. 2 shows a diagram of a resource allocation master list (200). Theresource allocation master list may include resource device entries(200A, 200N). Each resource device entry (200A, 200N) may include anallocated resource device identifier (201), an infrastructure personaidentifier (202), a resource device type (203), a resource device status(204), security compliance information (205), and data complianceinformation (206).

In one or more embodiments of the invention, the resource identifier(201) is a combination of letters, numbers, and/or symbols that uniquelyidentify a resource device associated with the resource device entry.

In one or more embodiments of the invention, the infrastructure personaidentifier (202) is a combination of letters, numbers, and/or symbolsthat uniquely identify an infrastructure persona (if any) that theresource device is allocated to. If the resource device is in a “shared”status, the infrastructure person identifier (202) may specify multipleinfrastructure personas to which the resource device is allocated to.For example, if the resource device is a storage device, the storagedevice may include multiple drives (e.g., hard disk drives, solid statedrives, etc.) that are each allocated to an infrastructure persona. Suchinfrastructure persona(s) may be specified in the infrastructure personaidentifier (202).

In one or more embodiments of the invention, if the resource device isbeing used to implement a workload, the resource device entry mayfurther include a workload identifier. The workload identifier may be acombination of letters, numbers, and/or symbols that uniquely identify aworkload. The workload identifier may be generated when the resourcedevice is assigned to implement a workload.

In one or more embodiments of the invention, the resource device type(203) specifies the type of resource device of the resource device. Forexample, the resource device may be a processing device, a storagedevice, a network device, and/or any other known or later discoveredtype of resource device. Further, the resource device type (203) mayprovide more granular information about the type of resource. Forexample, if the resource device is a processing device, the resourcedevice type (203) may specify whether the resource device is a CPU or aGPU.

In one or more embodiments of the invention, the resource device status(204) specifies the status of the resource device. Examples of resourcedevice statuses include, but are not limited to: “available,” “in use,”“standby,” “failed,” “quarantine,” and “shared.”

A resource device with an “available” status may specify a resourcedevice that is available to use by any infrastructure persona in thecomposable infrastructure. A resource device with an “in use” status mayspecify a resource device that is allocated to an infrastructure personaand is being used to implement a workload. A resource device with a“standby” status may specify a resource device that is allocated to aninfrastructure person and is not being used to implement a workload.Alternatively, a resource device in a “standby” status may specify aresource device that may be used by any infrastructure persona in thecomposable infrastructure and is equipped to implement a specified listof workloads. A resource device with a “failed” status may specify aresource device that does not perform its expected functionality and isnot available to use for any other workload. A resource device with a“quarantine” status may specify a resource device that was once used toimplement a workload that has been redeployed and needs to be monitoredand/or remedied. A resource device with the “quarantine” status may notbe available for use to implement a workload. A resource device with a“shared” status may specify a resource device that is shared by morethan one infrastructure persona to implement one or more workloads.

In one or more embodiments of the invention, the security complianceinformation (205) specifies the type of encryption that the resourcedevice is equipped to perform. In one or more embodiments of theinvention, an encryption algorithm is an operation performed on datathat encodes the data and is intended to be deciphered using adecryption key (or via other authorized mechanism).

For example, the security compliance information (205) may specify thata processing device is capable of performing an encryption algorithm(e.g., Data Encryption Standard (DES), TripleDES, Rive-Shamir-Adleman(RSA), Advanced Encryption Standard (AES), etc.).

In one or more embodiments of the invention, the data complianceinformation (206) is information utilized to determine the compliance ofthe resource devices to one or more data compliance rules. The datacompliance information (206) may specify, for example, a geographicallocation in which the corresponding resource device is located, whetherthe resource device is equipped to perform a mechanism for tracking thetransfer and/or usage of data that maintains the privacy of the data,and/or any other information that specifies whether the resource deviceis able to comply with one or more data compliance rules. Thegeographical location may be specified by an administrative systemmanaging the resource devices of a composable infrastructure. Any of theinformation specified in the data compliance information (206) (e.g.,the geographical information and/or the data usage) may be automaticallygenerated (e.g., via monitoring its global positioning system (GPS)location) and/or manually input by the administrative system withoutdeparting from the invention.

In one or more embodiments of the invention, the data complianceinformation (206) further includes a data compliance certificate. A datacompliance certificate may be a data structure generated by a datacompliance service that specifies that the resource device (and/or otherresource devices implementing a workload) has been used to implement aworkload that complies with one or more data compliance rules. Foradditional details regarding the data compliance rules, see, e.g., FIG.3F.

FIG. 3A shows a flowchart for generating a workload for aninfrastructure persona in accordance with one or more embodiments of theinvention. The method shown in FIG. 3A may be performed by, for example,an infrastructure persona generation manager (182, FIG. 1D). Othercomponents of the system illustrated in FIGS. 1A-1D may perform themethod of FIG. 3A without departing from the invention. While thevarious steps in the flowchart are presented and described sequentially,one of ordinary skill in the relevant art will appreciate that some orall of the steps may be executed in different orders, may be combined oromitted, and some or all steps may be executed in parallel.

In step 300, a workload generation request is obtained. The workloadgeneration request may specify one or more resource devices to beutilized by the workload. Further, the workload generation request mayspecify a minimum latency cost to be associated with the workload. Inone or more embodiments of the invention, the workload is associatedwith a previously-generated infrastructure persona.

Alternatively, the workload is not associated with an infrastructurepersona, and, as such, an infrastructure persona may be generated priorto generating the workload. In such embodiments, the infrastructurepersona is generated by generating an infrastructure persona ID andstoring the infrastructure persona ID in the resource allocation masterlist.

In step 302, available resources in one or more resource device pools ina composable infrastructure are identified based on the specifiedresource devices in the workload generation request. In one or moreembodiments of the invention, the management module may analyze theresource allocation master list to identify the resource devices thatare available (e.g., shared with the infrastructure persona and/or notallocated to another infrastructure persona). From the availableresource devices, the types of resource devices requested for theworkload is identified. For example, if the workload generation requestspecifies two processing devices and one storage device, the managementmodule may identify, of the available resource devices, those that areprocessing devices or storage devices.

In step 304, a latency analysis is performed on the identified resourcedevices to identify a latency cost of one or more resource devicecombinations. In one or more embodiments of the invention, a resourcedevice combination is a unique grouping of resource devices thatincludes all resource device requested in the workload generationrequest. The latency analysis includes identifying the resource devicecombinations and calculating a total latency cost for each resourcedevice combination.

For example, for the workload generation that specifies two processingdevices and one storage device, one resource device combination mayinclude processing device A, processing device B, and storage device C.A second resource device combination may include processing device A,processing device D, and storage device C. A third resource devicecombination may include processing device E, processing device F, andstorage device G.

In one or more embodiments of the invention, after the resource devicecombinations are identified, a total latency cost for each resourcedevice combination is calculated. In one or more embodiments of theinvention, the total latency cost is calculated by performing a function(e.g., summation) on latency costs between each pair of resource devicesin the resource device combination. Each latency cost is identified byidentifying a switch fabric directly connected to each resource deviceand identifying the number of switch fabrics required to connect toother resource devices in the resource device combinations. Thisinformation may be obtained from the latency manager of the managementmodule.

For example, a resource device combination that includes processingdevice A, processing device B, and storage device C may have processingdevice A directly connected to switch fabric A, processing device Bdirectly connected to switch fabric B, and storage device C directlyconnected to switch fabric C. Further, switch fabric A may be directlyconnected to switch fabric B, which is directly connected to switchfabric C. The total latency cost of the resource device combination iscalculated by identifying the latency cost between each pair of resourcedevices and adding the identified latency costs. A latency cost betweentwo directly connected switch fabrics may be associated with one unit oflatency. As such, a latency cost between two switch fabrics with anintermediate switch fabric connecting the two may be associated with twounits of latency.

Continuing the above example, the latency cost of processing device Aand processing device B is one unit of latency. The latency cost betweenprocessing device B and storage device C is one unit of latency. Thelatency cost between processing device A and storage device C is twounits of latency. As such, the total latency cost of the resource devicecombination may be the sum of the aforementioned latency costs (e.g.,four).

The total latency cost may be calculated for each identified resourcedevice combination to identify one or more of the resource devicecombinations with the lowest total latency cost.

In step 306, a set of options for available resource device combinationsis provided to the administrative system. In one or more embodiments ofthe invention, the set of options specifies the resource devicecombinations with the lowest total latency costs. In this manner, theadministrative system is allowed the option to select among the lowesttotal latency costs.

In step 308, a selection of the desired resource device combination isobtained. In one or more embodiments of the invention, the selection isobtained from the administrative system. The selection may be one of theset of options of step 306.

In one or more embodiments of the invention, the selection is based onthe total latency costs of the resource device combinations. Theresource device combination with the lowest total latency cost may beselected by the management module. In such embodiments, step 306 is anoptional step in the method.

In one or more embodiments of the invention, if the selection is basedon the lowest latency cost, and one or more resource device combinationshave a lowest latency cost, the selection may be determined on otherfactors of the resource device combinations with the lowest totallatency cost. For example, the resource device combination may beselected based on the distribution of the resource devices in resourcedevice pools.

Continuing the aforementioned example, if two resource devicecombinations are associated with the lowest total latency, the resourcedevice combination that specifies resource devices that are in resourcedevice pools with a larger number of under-utilized (e.g., notimplementing workloads) resource devices. In this manner, the totalutilization of resource devices in each resource device pool isminimized. In other words, the utilization of resource devices aredistributed between resource device pools.

In step 310, one or more resource devices are allocated to a workload ofthe infrastructure persona based on the selection. In one or moreembodiments of the invention, the resource devices are allocated byperforming configuration, if necessary, to the resource devices in theselection. The configuration may include, for example, installing anoperating system on the processing devices, initiating containergeneration for any applications operated by the processing devices,installing a virtual machine hypervisor, initiating communicationbetween the resource devices in the workload to specify the role of eachresource device and to specify how data is to be transferred, and/or anyother configuration without departing from the invention.

In step 312, a resource allocation master list is updated based on theallocation. In one or more embodiments of the invention, the resourceallocation master list is updated by updating resource device entriesassociated with the resource devices of the selection to specify astatus of “allocated” (or a similar status that specifies an in-usestatus of the resource devices). The resource devices may furtherspecify the infrastructure persona associated with the workload. In thismanner, the resource devices are no longer available for use by otherworkloads.

FIG. 3B shows a flowchart for updating a workload for an infrastructurepersona in accordance with one or more embodiments of the invention. Themethod shown in FIG. 3B may be performed by, for example, aninfrastructure persona generation manager (182, FIG. 1D). Othercomponents of the system illustrated in FIGS. 1A-1D may perform themethod of FIG. 3B without departing from the invention. While thevarious steps in the flowchart are presented and described sequentially,one of ordinary skill in the relevant art will appreciate that some orall of the steps may be executed in different orders, may be combined oromitted, and some or all steps may be executed in parallel.

In step 320, a resource device replacement request is obtained for afailed resource device associated with a workload. In one or moreembodiments of the invention, the resource device replacement requestmay specify the resource device (also referred to as the failed resourcedevice) that is to be replaced. The resource device replacement requestmay further specify the resource device type of the failed resourcedevice (e.g., processing device, storage device, network device, etc.).

In step 322, the resource allocation master list is updated to specify afailed status of the failed resource device. In one or more embodimentsof the invention, the resource allocation master list is updated byidentifying the resource device entries associated with the failedresource devices and modifying the status of the resource device entriesto specify a “failed” status.

In step 324, a resource device allocated to the infrastructure personaassociated with the workload that is in a “standby” status is selected.In one or more embodiments of the invention, a resource device with asimilar type of the failed resource device is selected. For example, ifthe failed resource device is a processing device, the selected resourcedevice may be a processing device.

In step 326, a resource entry of the selected resource device in theresource allocation master list is updated to specify an “in use” statusof the selected resource device.

In step 328, a resource device replacement process is initiated for theselected resource device. In one or more embodiments of the invention,the resource device replacement process includes initiatingcommunication with the selected resource device, notifying otherresource devices in the workload to communicate with the selectedresource device, enabling any standby configuration in the selectedresource device (e.g., booting an operating system in a processingdevice) to enable operation in the selected resource device. The changein communication may include managing a mapping between the storagedevices and the processing devices in the workload. The mapping may beupdated to specify an inter-relationship between the selected resourcedevice and the storage devices in the workload. The resource devicereplacement process may include additional, fewer, and/or differentsteps without departing from the invention.

FIG. 3C shows a flowchart for servicing redeployment requests inaccordance with one or more embodiments of the invention. The methodshown in FIG. 3C may be performed by, for example, a redeploymentorchestrator (186, FIG. 1D). Other components of the system illustratedin FIGS. 1A-1D may perform the method of FIG. 3C without departing fromthe invention. While the various steps in the flowchart are presentedand described sequentially, one of ordinary skill in the relevant artwill appreciate that some or all of the steps may be executed indifferent orders, may be combined or omitted, and some or all steps maybe executed in parallel.

In step 330, a redeployment request is obtained for a workload. In oneor more embodiments of the invention, the redeployment request isobtained from an administrative system requesting to redeploy anunderperforming workload. In one or more embodiments of the invention,the redeployment request may specify the performance of the workloadand/or in what ways the workload is underperforming.

For example, processing in the workload may be slower and/or lesseffective than anticipated when a workload generation request for theworkload was initially serviced. In such scenario, the administrativesystem may request to redeploy the workload with higher processingcapabilities. The redeployment request may specify workloadspecifications. As a second example, it may be determined that theworkload is performing more efficiently than previously expected. Suchworkload may be utilizing more resource devices than needed to implementthe workload. In such scenario, it may be beneficial to redeploy theworkload with fewer resource devices to increase availability of thetotal resource devices in the composable infrastructure.

The determination of the workload underperforming or over performing maybe based on monitoring of the workload performed in accordance with, forexample, the method of FIG. 3D.

In one or more embodiments of the invention, workload specificationsrefer to desired parameters for a workload to maintain. The workloadspecifications may specify, for example, processing power (e.g., clockspeed, number of cores, types of processing capabilities, cache, etc.),storage availability, bandwidth, and/or any other parameters withoutdeparting from the invention.

In step 332, resource devices associated with the workload areidentified. In one or more embodiments of the invention, theredeployment orchestrator identifies the resource devices required toproperly meet the workload specifications. For example, if a workloadspecification specifies 500 gigabytes (GB) of storage and the composableinfrastructure includes storage devices that can each hold 250 GB ofdata, the redeployment orchestrator may identify two storage devices tobe used to meet the workload specification.

In step 334, available resource devices are selected using the resourceallocation master list. In one or more embodiments of the invention, theredeployment manager accesses the resource allocation master list in themanagement module to identify one or more resource devices that areavailable for use by the infrastructure persona and that are associatedwith the identified resource devices of step 332. The management modulemay select, from the available resource devices, the resource devices tobe allocated to the redeployed workload.

In step 336, a storage replication is initiated for storage devicesassociated with the workload. In one or more embodiments of theinvention, the storage replication includes performing a migration fromthe previous storage device(s) associated with the workload to theselected storage device(s).

In one or more embodiments of the invention, the storage replication isoptional based on whether any of the selected resource devices arestorage devices. Specifically, if none of the resource devices arestorage devices, step 336 may be omitted.

In step 338, a configuration of identified networking and/or identifiedprocessing devices is initiated based on the workload. In one or moreembodiments of the invention, the configuration of processing devicesincludes communicating with software installation services to installdesired software onto the processing devices. For example, a containerconfiguration software may be installed to the processing device thatinstalls containers on the processing device(s) to enable applicationsto execute in the installed containers.

Further, a software installation service may install an operating systemon the processing device(s) that enable the processing device(s) tooperate in accordance with the workload. For example, if the workload isa virtualized cluster, the operating system may include a hypervisorthat manages the operation of one or more virtual machines and/or otherlogical entities executing on the processing devices. As a secondexample, if the workload is a cloud based service, a softwareinstallation service may install a cloud management service on aprocessing device of the workload to enable the processing device tomanage cloud based applications of the cloud based service and to enablecommunication between the processing device and client devices accessingdata and/or utilizing the cloud based applications in the cloud basedservice. The software installation service(s) may install other softwarenot mentioned in this application without departing from the invention.

In one or more embodiments of the invention, the network devices may beconfigured in such a way that enables the network to communicate withaforementioned client devices. The network devices may be configured by,for example, assigning an internet protocol (IP) address (or otherlogical address) to the network device and/or installing a virtualinterface that enables the other resource devices in the workload tocommunicate with client devices via the network device. The networkdevice may be configured via other known and/or later discoveredmechanisms without departing from the invention.

In step 340, the resource allocation master list is updated based on theredeployed workload. In one or more embodiments of the invention, theresource allocation master list is updated by modifying the status ofthe previous resource devices in the workload to a “quarantine” status.Further, each resource device entry of the selected resource devices aremodified to specify an “in use” status.

The resource devices in the “quarantine” status may be analyzed (e.g.,by the management module, the administrative system, and/or any otherentity) to determine whether the resource devices are operational. Anyresource devices that are deemed operational after analysis may betagged with an “available” status. In this manner, the workload isredeployed and operational before waiting for an analysis to determinewhat caused the previous iteration of the workload to underperform.

In step 342, a notification is sent to an administrative system of theredeployed workload. In one or more embodiments of the invention, thenotification may be a message that specifies the selected resourcedevices.

FIG. 3D shows a flowchart for managing performance of resource devicesin accordance with one or more embodiments of the invention. The methodshown in FIG. 3D may be performed by, for example, a performance manager(188, FIG. 1D). Other components of the system illustrated in FIGS.1A-1D may perform the method of FIG. 3D without departing from theinvention. While the various steps in the flowchart are presented anddescribed sequentially, one of ordinary skill in the relevant art willappreciate that some or all of the steps may be executed in differentorders, may be combined or omitted, and some or all steps may beexecuted in parallel.

In step 350, a workload to monitor performance metrics is selected. Inone or more embodiments of the invention, the workload is selectedrandomly. The workload may be selected based on a periodic schedule thatspecifies monitoring a workload after a predetermined time period.

In step 352, a determination is made about whether the workload is at aninitial phase. In one or more embodiments of the invention, the workloadis deemed to be at an initial phase if the workload was recentlygenerated (e.g., within a predetermined time period). If the workload isat an initial phase, the method proceeds to step 354; otherwise, themethod proceeds to step 356.

In step 354, initial performance capabilities of the resource devicesassociated with the workload are obtained. In one or more embodiments ofthe invention, the initial performance capabilities are generated bymeasuring maximum capabilities of the resource device. The maximumcapabilities is measured by performing one or more capability tests onthe resource devices based on the resource type of each resource device.

In one or more embodiments of the invention, a capabilities testperformed on a processing device may include sending a processingcommand on the processing device and measuring a processing speed. Asecond capabilities test may include sending multiple processingcommands to measure a point in which the processing device isoverloaded. Other capabilities tests may be performed on the processingdevices without departing from the invention.

In one or more embodiments of the invention, a capabilities testperformed on a storage device may include calculating a storage capacityof the storage device by identifying the disk sectors, calculating adisk space of each disk sector (e.g., using known and/or laterdiscovered mechanisms), and calculating a total disk space (e.g., thestorage capacity) based on the disk space of each disk sector. A secondcapabilities test performed on a storage device may include calculatinga maximum input/output operations (IOPS) of the storage device.

For example, the maximum IOPS of a storage device that includes a seriesof hard disk drives may be calculated by measuring an average rotationalspeed of the disks in the hard disk drives, measuring an average latencyof one or more sectors being accessed, measuring an average read timefor a predetermined amount of data, and measuring an average read timefor the predetermined amount of data. The maximum IOPS may be calculatedusing the aforementioned measurements and/or any known and/or laterdiscovered formulas. Other capabilities tests may be performed on thestorage devices without departing from the invention.

In one or more embodiments of the invention, a capabilities testperformed on a network device may include measuring a maximum bandwidthof the networking device by sending a predetermined amount of dataacross two network devices and measuring the time taken for one of thetwo network devices to receive the data. The bandwidth may be calculatedbased on the predetermined amount of data, the measured time, and/or anyknown and/or later discovered formula for calculating bandwidth (e.g.,dividing the predetermined amount of data by the measured time). Othercapabilities tests may be performed on the networking devices withoutdeparting from the invention.

In step 356, a snapshot of performance metrics for the resource devicesassociated with the workload are obtained. As discussed above, theperformance metrics specifies how the capabilities of the resourcedevices are being used at a given point in time. The snapshot isobtained by monitoring the resource devices for a given period of timeand measuring how each resource device is being utilized. For example, aperformance metric of a storage device may be obtained that specifies atotal amount of data that the storage device is storing at the givenpoint in time.

In step 358, the snapshot is stored in the performance database. Theperformance database may be the performance database stored in themanagement module (e.g., referenced in FIG. 1D).

In step 360, a determination is made about whether a minimum number ofsnapshots are obtained since the last performance analysis. In one ormore embodiments of the invention, the minimum number of snapshots is apredetermined number of snapshots that the performance manager is toobtain before a performance analysis is performed. After a performanceanalysis is performed, the current number of snapshots resets. If aminimum number of snapshots are obtained since the last performanceanalysis, the method proceeds to step 362; otherwise, the methodproceeds to step 350.

In step 362, a performance analysis is performed on the obtainedsnapshots of the workload to obtain a performance report. In one or moreembodiments of the invention, the performance analysis includesobtaining the most recent snapshots from the performance database afterthe previous performance analysis, calculating an average usage of theperformance metrics in the snapshots over the obtained snapshots, andcomparing the usage to standard performance.

In one or more embodiments of the invention, the standard performance isa set of performance thresholds that the performance metrics are tomeet. For example, an average CPU usage of the processing devices in theworkload may be calculated over the obtained snapshots and compared to aperformance threshold of 70%. If the CPU utilization meets or exceedsthe performance threshold of 70%, the performance report may specifythat the workload does not meet standard performance.

As a second example, an average storage usage may be calculated over theobtained snapshots and compared to a performance threshold of 90%. Ifthe storage usage meets or exceeds the performance threshold of 90% ofthe total storage capacity of the storage devices in the workload, theperformance report may specify that the workload does not meet standardperformance.

Each performance metric in the obtained snapshots may be analyzed to theperformance criteria to generate a performance report that specifieseach performance criteria and whether the performance metricscollectively meet the performance criteria. If any performance criterionis not met, the performance report may specify that the workload doesnot meet standard performance. In such scenario, the performance reportmay further specify which performance criteria was not met.

In step 364, a determination is made about whether the performancereport specifies at least one performance metric of the workload notmeeting standard performance. If the performance report specifies atleast one performance metric of the workload not meeting standardperformance, the method proceeds to step 366; otherwise, the methodproceeds to step 350.

In step 366, following the determination that the workload does not meetstandard performance, a resource device remediation is performed basedon the performance report. In one or more embodiments of the invention,the resource device remediation is based on the performance criterion(or criteria) that was not met as specified in the performance report.

In one or more embodiments of the invention, the resource deviceremediation includes performing a redeployment of the workload. Theredeployment may be performed via the method illustrated in FIG. 3D.Alternatively, the redeployment may include adding and/or removing aresource device from the workload. For example, if the performancereport specifies an over-utilization of CPU of the workload, theresource device remediation includes adding additional processingdevices to the workload.

As a second example, if the performance report specifies the workload isunder-utilizing its storage (e.g., less than 10% of the total storagecapacity of all storage devices of the workload is being utilized), thenthe resource remediation may include removing one or more storagedevices from the workload.

In one or more embodiments of the invention, the resource allocationmaster list may be updated based on the resource device remediation. Forexample, if a resource device is removed from the workload, acorresponding resource device entry may be modified to specify an“available” status of the removed resource device. In this manner, theremoved device may be utilized to implement another workload associatedwith another infrastructure persona.

In step 368, the system waits. In one or more embodiments of theinvention, the system may wait based on the periodic schedule discussedin step 350.

FIG. 3E shows a flowchart for generating a workload that is securitycompliant in accordance with one or more embodiments of the invention.The method shown in FIG. 3E may be performed by, for example, a securitycompliance manager (189, FIG. 1D). Other components of the systemillustrated in FIGS. 1A-1D may perform the method of FIG. 3E withoutdeparting from the invention. While the various steps in the flowchartare presented and described sequentially, one of ordinary skill in therelevant art will appreciate that some or all of the steps may beexecuted in different orders, may be combined or omitted, and some orall steps may be executed in parallel.

In step 370, a workload generation request for a security compliantworkload is obtained. The workload generation request may specify one ormore resource devices to be utilized by the workload. In one or moreembodiments of the invention, the workload is associated with apreviously-generated infrastructure persona.

In one or more embodiments of the invention, the workload generationrequest specifies a set of security compliant rules that the workload isto meet. In one or more embodiments of the invention, a securitycompliant rule is a rule that sets standards for how data should bestored, generated, and/or transferred by a workload. The securitycompliant rules may specify, for example, a minimum amount of encryptionto be performed on stored data to prevent any undesired entities fromaccessing the data. The encryption may be performed for an entity of anygranularity (e.g., at a volume level, at an application level, at a nodelevel, at a storage device level, etc.).

In one or more embodiments of the invention, the functionality forperforming the encryption may be configured on one or more resourcedevices in the composable infrastructure. The type of encryption aresource device is configured to perform on data may be specified in,for example, the resource allocation master list.

In step 371, one or more available resources are selected that meet thesecurity compliant rules using security compliance information. In oneor more embodiments of the invention, the security compliance manageranalyzes the resource allocation master list to identify a set ofresource devices that each meet the following criteria: (i) are in an“available” status (or otherwise indicate that the resource device maybe used to implement the workload), (ii) indicate having thefunctionality to perform at least the minimum encryption specified inthe security compliant rules (such indication may be specified in thesecurity compliance information of the corresponding resource deviceentry in the resource allocation master list), and (iii) are of aresource type needed to implement the workload. After such resourcedevices are identified, the security compliance manager selects a set ofresource devices to be implemented.

In step 372, a security compliance test is initiated on the selectedresource device(s) to obtain security compliance confirmation of theresource device(s). In one or more embodiments of the invention, thesecurity compliance test includes implementing any operation thatconfirms that the workload complies with the security compliance rulesspecified in the workload generation request.

In one or more embodiments of the invention, the security compliancetest includes a penetration test. The penetration test may beimplemented as a simulated cyberattack on the workload. The cyberattackmay be, for example, an attempt to access the data in storage devices ofthe workload by decrypting via unauthorized methods. If the cyberattackresults in accessing the data via the unauthorized methods, the resultsof the penetration test conclude that the workload does not comply withthe security compliance rules.

In one or more embodiments of the invention, at least a portion of thesecurity compliance test is performed by a third-party system. In one ormore embodiments of the invention, the third-party system is prompted bythe security compliance manager to perform the portion of the securitycompliance test (e.g., the penetration test).

In step 373, a determination is made about whether the selected resourcedevice(s) comply with the security compliance rules. If the resourcedevice(s) comply with the security compliance rules, the method proceedsto step 374; otherwise, the method proceeds to step 371. In other words,a second set of resource devices are selected, and the securitycompliance test is repeated for the second set of rules.

In step 374, following the determination that the selected resourcedevices comply with the security compliance rules, a virtual certificateis stored in a security compliance database based on the results of thesecurity compliance test. In one or more embodiments of the invention,the virtual certificate specifies the workload and the selected resourcedevices used to implement the workload. The virtual certificate mayfurther specify the security compliance rules of which the workloadcomplies.

In one or more embodiments of the invention, the virtual certificate isstored immutably. Said another way, the virtual certificate may not bemodified or updated without authorization. The authorization may beperformed by, for example, generating a digital signature of the virtualcertificate and, during review of the virtual certificate, utilizing thedigital signature using known or later discovered methods to determinethat the virtual certificate has not been modified and/or altered.

In step 375, the selected resource devices are allocated to the securitycompliant workload. In one or more embodiments of the invention, theresource devices are allocated by performing configuration, ifnecessary, to the resource devices in the selection. The configurationmay include, for example, installing an operating system on theprocessing devices, initiating container generation for any applicationsoperated by the processing devices, installing a virtual machinehypervisor, initiating communication between the resource devices in theworkload to specify the role of each resource device and to specify howdata is to be transferred, and/or any other configuration withoutdeparting from the invention.

In one or more embodiments of the invention, the resource devicesutilized to implement the security compliant workloads may varythroughout the lifecycle of the security compliant workload. Forexample, a resource device replacement may be performed in accordancewith FIG. 3B that includes replacing a failed resource deviceimplementing the security compliant workload. In such cases in which theresource devices implementing the security compliant workload arereplaced, additional security compliance tests may be performed for eachnew set of resource devices implementing the security compliant workloadto ensure the new set complies with the security compliant rules.Additionally, additional virtual certificates are generated and storedfor the new sets that comply with the security compliant rules.

FIG. 3F shows a flowchart for generating a workload that is datacompliant in accordance with one or more embodiments of the invention.The method shown in FIG. 3F may be performed by, for example, a datacompliance service (130, FIG. 1A). Other components of the systemillustrated in FIGS. 1A-1D may perform the method of FIG. 3F withoutdeparting from the invention. While the various steps in the flowchartare presented and described sequentially, one of ordinary skill in therelevant art will appreciate that some or all of the steps may beexecuted in different orders, may be combined or omitted, and some orall steps may be executed in parallel.

In step 380, a workload generation request for a data compliant workloadis obtained. The workload generation request may specify one or moreresource devices to be utilized by the workload. In one or moreembodiments of the invention, the workload is associated with apreviously-generated infrastructure persona.

In one or more embodiments of the invention, the workload generationrequest specifies a set of at least one data compliance rules that theworkload is to meet. In one or more embodiments of the invention, a datacompliance rule is a rule that sets guidelines for how the data isobtained and/or stored. The guidelines may specify, for example, ageographic region in which the resource devices implementing theworkload are to be located. As a second example, the guidelines mayspecify a series of steps (e.g., requesting permission from the entityfrom which the data is obtained prior to obtaining such data) for howthe data is to be obtained. The data may be sensitive information (e.g.,information that is not meant to be public), and the series of steps mayhelp prevent the data from being accessed publicly.

In step 381, data compliance information is obtained from a managementmodule for the specified resource devices. In one or more embodiments ofthe invention, the data compliance information specifies informationthat may be useful for determining whether the resource devices meet thedata compliance rules. For example, the data compliance information mayspecify a geographical location of each resource device in a composableinfrastructure. Further, the data compliance information of processingdevices may specify whether the processing devices are equipped withimplementing data privacy policies.

In one or more embodiments of the invention, a data privacy policy is adata compliance rule that specifies how the data is obtained and/ordistributed from a consumer operating, e.g., a client device. Forexample, the data compliance information of a processing device mayspecify whether the processing device is equipped to monitor where thedata is transferred within the workload, monitor when the data istransferred outside of the workload, disclose how the data is beingutilized within the workload, and/or any other mechanisms that are usedto implement the data privacy policies without departing from theinvention.

In step 382, available resource devices are selected that meet requesteddata compliance rules. In one or more embodiments of the invention, theresource devices are identified using the obtained data complianceinformation. The data compliance service may analyze the data complianceinformation to identify which resource devices (i) comply with therequested data compliance rules and (ii) are specified as beingavailable for use. The data compliance service selects from the resourcedevices that meet the aforementioned criteria.

In step 383, a data compliance certification storage is initiated. Inone or more embodiments of the invention, the data compliancecertification storage includes storing a data compliance certificate ina security compliance database of the management module. The datacompliance certificate specifies the selected resource devices and thedata compliance rule(s) that the selected resource devices comply withcollectively.

In step 384, the selected resource devices are allocated to a workloadof the infrastructure persona. In one or more embodiments of theinvention, the resource devices are allocated by prompting themanagement module managing the selected resource devices to perform aconfiguration, if necessary, on the resource devices in the selection(discussed, e.g., in FIG. 3A).

In step 385, a ledger entry for the allocated resource device isgenerated and stored in the data compliance service. In one or moreembodiments of the invention, the ledger entry is an immutable entrystored in the data compliance service that specifies the selectedresource devices and the data compliance certification. The ledger entrymay be accessed by the administrative system to determine whether theworkload is in compliance with the specified data compliance rule.

In one or more embodiments of the invention, the ledger entry generatedin step 385 is associated with a previous ledger entry for the workload.The method of FIG. 3F may be performed in response to an update to adata compliance rule for which the workload was in compliance with. Assuch, the method of FIG. 3F is performed to ensure that the workload isin compliance with any updates to the data compliance rules, and theledger entry is stored such that an administrative system (or otherentity) accessing the ledger entry may determine that the ledger entryis associated with a ledger entry of a previous iteration of the datacompliance rules.

Example 1

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIGS. 4.1A-4.1B.Turning to the example, consider a scenario in which a workload is to beimplemented. FIG. 4.1A shows an example system with a management module(410) and a chassis system. For the sake of brevity, not all componentsin the example system are illustrated in FIGS. 4.1A-4.1B.

The management module (410) includes a latency manager (414) thatmonitors the connections between components in the chassis system (400).The chassis system (400) includes four switch fabrics (switch fabric A(404A), switch fabric B (404B), switch fabric C (404C), and switchfabric D (404D)). As illustrated in FIG. 4.1A, switch fabric A (404A) isdirectly connected to switch fabric B (404B), switch fabric B (404B) isfurther directly connected to switch fabric C (404C), and switch fabricC (404C) is further directly connected to switch fabric D (404D).

Further, the chassis system (400) includes four resource devices(processing device A (402A), storage device B (402B), storage device C(402C), network device D (402D), and processing device E (402E)). Asillustrated in FIG. 4A, processing device A (402A) is directly connectedto switch fabric A (404A), storage device B (402B) is directly connectedto switch fabric B (404B), storage device C (402C) is directly connectedto switch fabric C (404C), and processing device E (402E) and networkdevice D (402D) are directly connected to switch fabric D (404D). Thelatency manager (414) monitors these direct connections. While notexplicitly illustrated in FIG. 4.1A, the resource devices (402A, 402B,402C, 402D, 402E) are all in an “available” status.

FIG. 4.1B shows the example system at a later point in time. The examplesystem illustrated in FIG. 4.1B includes the management module (410) andan administrative system (420). The administrative system (420) sends aworkload generation request [1]. The workload may be for an applicationdatabase with a server. The workload generation request specifies alatency aware workload, and specifies utilizing a processing device, twostorage devices, and a network device. An infrastructure personageneration manager (412) obtaining the workload generation requestutilizes a resource allocation master list (416) to identify availableresource devices. The resource devices illustrated in FIG. 4.1A areidentified [2].

The identified resource devices are analyzed by the latency manager(414), as prompted by the infrastructure persona generation manager(412), to identify resource device combinations of one processingdevice, two storage devices, and one network device [3]. Each identifiedresource device combination is analyzed in accordance with FIG. 3A tocalculate a total latency cost. The calculated total latency costs areprovided in Table 1:

TABLE 1 Total latency cost for resource device combinations ResourceDevice Combination Resource Devices Total Latency Cost A Processingdevice A, 10 units of latency Storage Device B, Storage Device C,Network Device D B Processing device E, 7 units of latency StorageDevice B, Storage Device C, Network Device D

As illustrated in Table 1, resource device combination A has a totallatency of 10 units. The total latency may be calculated by identifyinga latency cost for each pair in the resource device combination. Forexample, for resource device combination A, the latency cost betweenprocessing device A (402A) and storage device B is one unit of latencydue to processing device A (402A) being one switch fabric away fromconnecting to storage device B. The latency cost of each pair ofresource devices in each resource device combination is similarlycalculated and used to calculate each total latency cost.

Based on the calculated latency costs, resource device combination B isselected. The selection is provided to the administrative system (420)with a request for confirmation. The total latency of both resourcedevice combinations are specified in the request for context for theadministrative system (420). The administrative system (420) confirmsthe selection of resource device combination B [4].

After resource device combination B is selected, the management moduleinitiates a workload generation that includes configuring processingdevice E (402E), storage device B (402B), storage device C (402C), andnetwork device D (402D) to implement the workload specified in theworkload generation request.

End of Example 1 Example 2

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIGS. 4.2A-4.2B.Turning to the example, consider a scenario in which a processing devicein a workload is to be replaced. FIG. 4.2A shows an example system. Theexample system includes an administrative system (420) and a managementmodule (410). For the sake of brevity, not all components in the examplesystem are illustrated in FIGS. 4.2A-4.2B.

The administrative system (420) sends a resource device replacementrequest to the management module (410) [5]. The resource devicereplacement request specifies resource device 0005 has failed and needsto be replaced. Resource device 0005 is a CPU allocated toinfrastructure persona AAA.

The management module (410) includes a resource allocation master list(416A) that specifies each resource device and corresponding informationsuch as a corresponding resource device identifier, an infrastructurepersona identifier (if any) to which the resource device is allocated, aresource device type, and a status of the resource device.

FIG. 4.2B shows a diagram of the example system at a later point intime.

The management module performs the method of FIG. 3B to replace thefailed resource device and update the resource allocation master list(416B) in accordance with the replacement. Specifically, the managementmodule (410) modifies the status of resource device 0005 from “In Use”to “Failed” to specify a failed status of the resource device. Further,the management module (410) identifies resource device 0006 as a secondCPU that is allocated to infrastructure persona AAA and is previously ina “Standby” status (as shown in FIG. 4.2A). As shown in FIG. 4.2B, themanagement module (410) modifies the status of resource device 0006 froma “Standby” status to a “In Use” status to specify resource device 0006to be in use, replacing resource device 0005 [6].

The management module (410) continues the method of FIG. 3B and sends anotification of the update to the resource allocation master list (416B)[7]. Further, the management module initiates a replacement process onthe resource device 0006 in the chassis system (400) [8]. Specifically,the management module initiates a boot of the operating system executingon resource device 0006, and sends a notification to each resourcedevice in the corresponding workload (e.g., resource device 0002) tocommunicate with resource device 0006 instead of resource device 0005.In this manner, the workload continues operation after the failedresource device (i.e., resource device 0005) is replaced.

End of Example 2 Example 3

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIGS. 4.3A-4.3B.Turning to the example, consider a scenario in which a redeploymentrequest is initiated for a workload that is under performing. For thesake of brevity, not all components in the example system areillustrated in FIGS. 4.3A-4.3B.

FIG. 4.3A shows a diagram of an example system. The system includes anadministrative system (420) and a management module (410). Themanagement module (410) includes a resource allocation master list(416C). The resource allocation master list (416C) specifies sixresource devices and their respective statuses. Specifically, theresource allocation master list (416C) specifies resource devices 0007and 0008 being used to implement a workload associated with resourcepersona BCB. The workload executed by one CPU (i.e., resource device0007) and one storage device (i.e., resource device 0008).

The administrative system (420) sends a redeployment request to themanagement module (410) that specifies redeploying a workload associatedwith infrastructure persona BCB [9]. The workload is associated with acloud application. The redeployment request specifies the currentworkload is underperforming on processing. In other words, theredeployment request specifies that the workload needs to be improved onprocessing.

FIG. 4.3B shows the example system at a later point in time. At thelater point in time, the management module (410) performs the method ofFIG. 3C and initiates a redeployment of the workload. Specifically, themanagement module (410) identifies the resource devices that are to beused for the redeployed workload.

Based on the redeployment request, the management module determines thatthe redeployed workload is to be implemented using two CPUs and astorage device. Using the resource allocation master list (416C), themanagement module further identifies and selects resource devices 0009,0010, and 0012 as the resource devices to be used to implement theredeployed workload. The resource allocation master list is updatedaccordingly [10]. Specifically, the resource allocation master list(416D) is updated to specify a “quarantine” status for the resourcedevices of the under-performing workload (i.e., resource devices 0007and 0008). Further, the resource allocation master list (416D) specifiesan “in use” status for the selected resource devices (i.e., resourcedevices 0009, 0010, and 0012).

Continuing the method of FIG. 3C, the management module (410) initiatesa configuration of the processing devices of the selected resourcedevices [11]. The configuration may include installing an applicationcontainer on each CPU using an application container installationsoftware (not shown) that enables the CPUs to execute the application ofthe workload. Further, a data migration is initiated [12]. The datamigration includes transferring data associated with the workload fromresource device 0008 of the previous implementation of the workload toresource device 0012 of the redeployed workload.

In this manner, resource devices 0009, 0010, and 0012 are equipped toimplement the redeployed workload with reduced risk of under-performingon processing. The resource devices of the previous implementation ofthe workload may be analyzed at a later point in time to determinewhether the resource devices may be utilized in the future to implementworkloads.

End Example 3 Example 4

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIGS. 4.4A-4.4B.Turning to the example, consider a scenario in which a workload is beingmonitored for its performance. FIG. 4.4A shows a diagram of an examplesystem. The example system includes a management module (410) and aworkload (440A) that is implemented by two resource devices (0013 and0014). For the sake of brevity, not all components in the example systemare illustrated in FIGS. 4.4A-4.4B.

The workload is generated by the management module (410) in response toa workload generation request issued by an administrative system (notshown) [12]. At this point in time, the workload is at an initial phase.A performance manager (418) of the management module (410) obtainsinitial performance capabilities of the resource devices (0013, 0014)[13]. The initial performance capabilities specify that the processingdevice (i.e., resource device 0013) has a clock speed of 3.9 gigahertz(GHz) and four processor cores. The initial performance capabilitiesfurther specify that the storage device (i.e., resource device 0014)includes 1 terabyte (TB) of total disk space. In addition to the initialperformance capabilities, a snapshot of the workload is obtained. Thesnapshot specifies that 20% of the processing device (0013) is in useand that 70% of the total disk space of the storage device (0014) isstoring data associated with the workload (440A). The initialperformance capabilities and the first snapshot are stored in aperformance database (419A) [14].

At a second point in time, after the performance manager waits apredetermined period of time (e.g., two hours), a second snapshot of theworkload (440A) is obtained [15]. The second snapshot specifies that 30%of the processing device (0013) is in use and that 80% of the total diskspace of the storage device (0014) is storing data associated with theworkload (440A). The second snapshot is stored in the performancedatabase (419A) [16].

At a third point in time, after the performance manager waits thepredetermined period of time, a third snapshot of the workload (440A) isobtained [17]. The third snapshot specifies that 25% of the processingdevice (0013) is in use and that 95% of the total disk space of thestorage device (0014) is storing data associated with the workload(440A). The third snapshot is stored in the performance database (419A)[18].

After the third snapshot is obtained and stored, the performance manager(418) makes a determination that a minimum number of snapshots of threehave been obtained. The performance manager (418) performs a performanceanalysis in accordance with FIG. 3D [19]. The performance analysisincludes obtaining an average CPU usage for the processing device and anaverage total disk space usage for the storage device and comparing theaverage values to performance threshold.

The average CPU usage calculated using the snapshots is 25%, and theaverage total disk space usage is 82%. The performance threshold of theCPU usage is 75%. Because the CPU usage does not exceed the performancethreshold of 75% CPU usage, a resource device remediation is notperformed for the processing device. A performance threshold of thetotal disk space usage is 80%. Because the total disk space usage of 82%exceeds the performance threshold of 80% of total disk space usage, theperformance manager (418) determines to perform a resource deviceremediation on the storage device.

FIG. 4.4B shows the example system at a later point in time. Theresource device remediation includes updating the workload (440B) byadding a second storage device (i.e., resource device 0015) [20]. Theupdate includes communicating with resource devices 0013 and 0014 tospecify the additional storage device [21]. This may enable dataassociated with the workload (440B) to be stored in the second storagedevice.

After the second storage device is added to the workload (440B), theresource allocation master list (416E) is updated to specify the update[22]. Specifically, an entry of the second storage device (0015) ismodified to specify an “in use” status of the second storage device(0015). In this manner, the second storage device (0015) is allocated tothe workload (440B) and may not be inadvertently allocated to a secondworkload.

End of Example 4 Example 5

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIG. 4.5. Turningto the example, consider a scenario in which a workload is to begenerated that complies with a security compliant rule. FIG. 4.5 shows adiagram of an example system. The example system includes anadministrative system (420) and a management module (410). For the sakeof brevity, not all components in the example system are illustrated inFIGS. 4.5.

The administrative system sends a workload generation request to themanagement module (410) for a workload that complies with the securitycompliant rule [23]. The security compliant rule may specify that theresource devices of the workload are to be capable of executing anAdvanced Encryption Standard (AES) encryption algorithm and/or storingdata that has been encrypted using such encryption algorithm. Theworkload generation request further specifies that the workload is to beimplemented by two CPUs and one storage device.

The management module (410) uses a resource allocation master list(416E) to identify resource devices that are: (i) in an “available”status, (ii) meet the resource device needs as specified in the workloadgeneration request, and (iii) specify a capability to handle data usingthe AES encryption algorithm. The management module selects, from theidentified resource devices that meet the aforementioned criteria,resource device 0016, resource device 0017, and resource device 0018.

The management module (410) initiates a security compliance test on theselected resource devices (0016, 0017, 0018) to determine whether theselected resource devices (0016, 0017, 0018) collectively comply withthe security compliance rule [24]. Specifically, the security compliancetest includes installing an operating system on the CPUs (i.e., 0016 and0017) that includes processing instructions for executing the AESencryption algorithm and for storing the encrypted data in a storagedevice. The security compliance test further includes initiating apenetration test. The penetration test is initiated by prompting a thirdparty system (not shown) to execute an initial assessment of theconfiguration of the workload (440B) and to attempt to decrypt the datastored in the workload (440B) without using an encryption key (e.g., inan unauthorized manner). The results of the penetration test may includebeing unable to decrypt the data. Such results are sent to themanagement module (410) [25].

Based on the results of the security compliance test, the managementmodule (410) determines that the workload (432B) is compliant with thesecurity compliant rule. A virtual certificate is stored in a securitycompliance database (419B) that specifies the workload (440B), theresource devices (i.e., 0016, 0017, 0018) used to implement the workload(440B), and the security compliant rule that the workload complies with[26]. In this manner, future workload generation requests that specifythe security compliant rule may analyze the security compliance database(419B) to determine that resource devices 0016, 0017, and 0018collectively comply with the security compliance rules and may beutilized for future workloads when they become available.

End of Example 5 Example 6

The following section describes an example. The example is not intendedto limit the invention. The example is illustrated in FIGS. 4.6A-4.6B.Turning to the example, consider a scenario in which a workload is to begenerated that complies with a data compliance rule. FIG. 4.6A shows adiagram of an example system. The example system includes anadministrative system (420), a chassis system (400), and a datacompliance service (430). For the sake of brevity, not all components inthe example system are illustrated in FIGS. 4.6A-4.6B.

The administrative system sends a workload generation request to thedata compliance service (430) for a workload that complies with the datacompliance rule [27]. The data compliant rule may specify that theresource devices of the workload are to be physically located within thestate of California. The workload generation request further specifiesthat the workload is to be implemented by one processing device and onestorage device.

The data compliance service (430) in response to the workload generationrequest, sends a request to a management module (410) of the chassissystem that specifies the data compliance information of resourcedevices in the chassis system (400). The data compliance information mayspecify the geographical locations of each resource device in thechassis system. The management module (410), in response to the request,sends the data compliance information to the data compliance service(430) [28]. The data compliance information specifies that resourcedevices 0021, 0023, and 0024 of the chassis system (400) are located inSan Diego, Calif. and that resource device 0022 is located in Tijuana,Mexico. Resource devices 0021 and 0022 are processing devices. Resourcedevices 0023 and 0024 are storage devices.

Based on this data compliance information, the data compliance service(430) selects one processing device and one storage device out of theeligible resource devices (i.e., 0021, 0023, and 0024). The datacompliance service (430) selects processing device 0021 and storagedevice 0023.

FIG. 4.6B shows the example system at a later point in time. Themanagement module (410) is prompted by the data compliance service (430)to allocate resource devices 0021 and 0023 to a workload associated withthe workload generation request. The management module (410), inresponse to the prompting, generates the workload (440C) and allocatesresource devices 0021 and 0023 to the workload (432C) [29].

Further, after the selected resource devices are allocated, the datacompliance service (430) stores a ledger entry that specifies theselected resource devices (i.e., 0021 and 0023) and generates a datacompliance certificate that is stored in the ledger entry that specifiesthe data compliance rule with which the workload complies [30]. The datacompliance certificate is stored in a security compliance database (notshown) of the management module (410). In this manner, a client (notshown) of the workload (440C) may refer to the ledger entry or themanagement module (410) to determine whether the workload (440C) is incompliance with the data compliance rule.

End of Example 6

As discussed above, embodiments of the invention may be implementedusing computing devices. FIG. 5 shows a diagram of a computing device inaccordance with one or more embodiments of the invention. The computingdevice (500) may include one or more computer processors (502),non-persistent storage (504) (e.g., volatile memory, such as randomaccess memory (RAM), cache memory), persistent storage (506) (e.g., ahard disk, an optical drive such as a compact disk (CD) drive or digitalversatile disk (DVD) drive, a flash memory, etc.), a communicationinterface (512) (e.g., Bluetooth interface, infrared interface, networkinterface, optical interface, etc.), input devices (510), output devices(508), and numerous other elements (not shown) and functionalities. Eachof these components is described below.

In one embodiment of the invention, the computer processor(s) (502) maybe an integrated circuit for processing instructions. For example, thecomputer processor(s) may be one or more cores or micro-cores of aprocessor. The computing device (500) may also include one or more inputdevices (510), such as a touchscreen, keyboard, mouse, microphone,touchpad, electronic pen, or any other type of input device. Further,the communication interface (512) may include an integrated circuit forconnecting the computing device (500) to a network (not shown) (e.g., alocal area network (LAN), a wide area network (WAN) such as theInternet, mobile network, or any other type of network) and/or toanother device, such as another computing device.

In one embodiment of the invention, the computing device (500) mayinclude one or more output devices (508), such as a screen (e.g., aliquid crystal display (LCD), a plasma display, touchscreen, cathode raytube (CRT) monitor, projector, or other display device), a printer,external storage, or any other output device. One or more of the outputdevices may be the same or different from the input device(s). The inputand output device(s) may be locally or remotely connected to thecomputer processor(s) (502), non-persistent storage (504), andpersistent storage (506). Many different types of computing devicesexist, and the aforementioned input and output device(s) may take otherforms.

One or more embodiments of the invention may be implemented usinginstructions executed by one or more processors of the data managementdevice. Further, such instructions may correspond to computer readableinstructions that are stored on one or more non-transitory computerreadable mediums.

One or more embodiments of the invention may improve the operation ofone or more computing devices. More specifically, embodiments of theinvention improve the ability to perform operations using computingdevices. Specifically, embodiments of the invention enableadministrative systems implementing workloads to select availableresource devices from one or more resource device pools to be used toimplement such workloads. The resource devices may be distributedregardless of the physical locations of the resource devices and/or thephysical associations to a computing device. In other words, resourcedevices of one computing device may be utilized for multiple independentworkloads that also utilize resource devices of other computing devices.Embodiments of the invention may utilize a resource allocation masterlist that tracks the usage of the resource devices and enables theresource devices to be allocated to workloads while preventinginadvertent allocation of a resource device to two or more workloads.

Embodiments of the invention enable the redeployment of such workloadsin the event that the workloads are not performing to the standarddesired by users of the administrative system. Embodiments of theinvention may utilize the resource allocation master list to maintainsuch redeployment in a quick and efficient manner to reduce delay inworkload implementation.

Further embodiments of the invention may include monitoring theworkloads to obtain performance metrics of the workloads. Theperformance metrics may be used to perform proactive remediation of theworkloads and/or resource devices in the workloads to prevent workloadfailure.

Finally, embodiments of the invention provide transparency in ensuringthat the workloads comply with real-world rules (e.g., securitycompliance rules or data compliance rules) by storing certificatesand/or ledger entries that may be accessed by the administrative system(or other entities) to evaluate the compliance of such workloads.

Thus, embodiments of the invention may address the problem ofinefficient use of computing resources. This problem arises due to thetechnological nature of the environment in which resource devices areutilized.

The problems discussed above should be understood as being examples ofproblems solved by embodiments of the invention disclosed herein and theinvention should not be limited to solving the same/similar problems.The disclosed invention is broadly applicable to address a range ofproblems beyond those discussed herein.

While the invention has been described above with respect to a limitednumber of embodiments, those skilled in the art, having the benefit ofthis disclosure, will appreciate that other embodiments can be devisedwhich do not depart from the scope of the invention as disclosed herein.Accordingly, the scope of the invention should be limited only by theattached claims.

What is claimed is:
 1. A method for managing data, the methodcomprising: obtaining, by a management module, a workload generationrequest, wherein the workload generation request specifies a pluralityof resource devices; identifying available resource devices in aresource device pool based on the plurality of resource devices;performing a latency analysis on the available resource devices toobtain a plurality of resource device combinations and a total latencycost of each resource device combination, wherein the total latency costof each resource device combination comprises a number of units oflatency, wherein the number of units of latency is associated with anumber of switch fabrics used to connect a first resource device of aresource device combination to a second resource device of the resourcedevice combination, wherein each switch fabric comprises a series ofcrossbar switches; and selecting the resource device combination of theplurality of resource device combinations based on the total latencycost of each resource device combination, wherein the resource devicecombination comprises a second plurality of resource devices and whereineach of the second plurality of resource devices is one of the pluralityof resource devices.
 2. The method of claim 1, further comprising:allocating the second plurality of resource devices based on theselecting; and updating a resource allocation master list based on theallocating.
 3. The method of claim 1, wherein performing the latencyanalysis comprises: identifying the resource device combination;identifying a latency cost of a pair of resource devices in the resourcedevice combination; and calculating a total latency cost of the resourcedevice combination based at least on the latency cost of the pair ofresource devices.
 4. The method of claim 1, wherein the second pluralityof resource devices implement a workload.
 5. The method of claim 4,wherein the workload is associated with an infrastructure persona. 6.The method of claim 1, wherein selecting the resource device combinationcomprises: identifying a lowest total latency cost; and making adetermination that the resource device combination is associated withthe lowest total latency cost.
 7. A non-transitory computer readablemedium comprising computer readable program code, which when executed bya computer processor enables the computer processor to perform a methodfor managing data, the method comprising: obtaining, by a managementmodule, a workload generation request, wherein the workload generationrequest specifies a plurality of resource devices; identifying availableresource devices in a resource device pool based on the plurality ofresource devices; performing a latency analysis on the availableresource devices to obtain a plurality of resource device combinationsand a total latency cost of each resource device combination, whereinthe total latency cost of each resource device combination comprises anumber of units of latency, wherein the number of units of latency isassociated with a number of switch fabrics used to connect a firstresource device of a resource device combination to a second resourcedevice of the resource device combination, wherein each switch fabriccomprises a series of crossbar switches; and selecting the resourcedevice combination of the plurality of resource device combinationsbased on the total latency cost of each resource device combination,wherein the resource device combination comprises a second plurality ofresource devices and wherein each of the second plurality of resourcedevices is one of the plurality of resource devices.
 8. Thenon-transitory computer readable medium of claim 7, the method furthercomprising: allocating the second plurality of resource devices based onthe selecting; and updating a resource allocation master list based onthe allocating.
 9. The non-transitory computer readable medium of claim7, wherein performing the latency analysis comprises: identifying theresource device combination; identifying a latency cost of a pair ofresource devices in the resource device combination; and calculating atotal latency cost of the resource device combination based at least onthe latency cost of the pair of resource devices.
 10. The non-transitorycomputer readable medium of claim 7, wherein the second plurality ofresource devices implement a workload.
 11. The non-transitory computerreadable medium of claim 10, wherein the workload is associated with aninfrastructure persona.
 12. The non-transitory computer readable mediumof claim 7, wherein selecting the resource device combination comprises:identifying a lowest total latency cost; and making a determination thatthe resource device combination is associated with the lowest totallatency cost.
 13. A system, comprising: a processor; and memorycomprising instructions, which when executed by the processor, perform amethod, the method comprising: obtaining, by a management module, aworkload generation request, wherein the workload generation requestspecifies a plurality of resource devices; identifying availableresource devices in a resource device pool based on the plurality ofresource devices; performing a latency analysis on the availableresource devices to obtain a plurality of resource device combinationsand a total latency cost of each resource device combination, whereinthe total latency cost of each resource device combination comprises anumber of units of latency, wherein the number of units of latency isassociated with a number of switch fabrics used to connect a firstresource device of a resource device combination to a second resourcedevice of the resource device combination, wherein each switch fabriccomprises a series of crossbar switches; and selecting the resourcedevice combination of the plurality of resource device combinationsbased on the total latency cost of each resource device combination,wherein the resource device combination comprises a second plurality ofresource devices and wherein each of the second plurality of resourcedevices is one of the plurality of resource devices.
 14. The system ofclaim 13, the method further comprising: allocating the second pluralityof resource devices based on the selecting; and updating a resourceallocation master list based on the allocating.
 15. The system of claim13, wherein performing the latency analysis comprises: identifying theresource device combination; identifying a latency cost of a pair ofresource devices in the resource device combination; and calculating atotal latency cost of the resource device combination based at least onthe latency cost of the pair of resource devices.
 16. The system ofclaim 13, wherein the second plurality of resource devices implement aworkload.
 17. The system of claim 13, wherein selecting the resourcedevice combination comprises: identifying a lowest total latency cost;and making a determination that the resource device combination isassociated with the lowest total latency cost.